OSI 七层模型将数据链路层分为 LLC(Logical Link Control)和 MAC(Medium Access Control)两个子层。其分工如下图所示:
MAC 子层为 LLC 子层提供物理层的抽象,它会承担 包装帧、数据 检错和纠错、碰撞解决 以及 传输信道解决 等等功能。
成帧 Framing 的核心任务是设计一种方案使得接收方很容易找到每个帧的开始,从而将比特流还原成一个个帧;同时不能占用太多带宽。
纠错码广泛运用于 无线链路。无线链路容易出错,如果没有纠错码很可能无法获得完全正确的信息。另外对于 单工信道 的情况,接收方如果检错到了错误也无法发回一个重发请求,也适用于纠错码。
光纤和高品质铜线的错误率较低,因此对偶现的错误进行检错和重传更加有效。
Flag | Address | Control | Informantion | FCS | Flag |
---|---|---|---|---|---|
8 bits | 8 or more bits | 8 or 16 bits | Variable length, 8×n bits | 16 or 32 bits | 8 bits |
01111110
;同时每连续 5 个 1,发送时就在后面添加一个 001111110
;但是填充方式采用 byte stuffing:在数据中发现的 0x7E
将被替换为 0x7D 0x5E
两个字节;而 0x7D
将被替换为 0x7D 0x5D
。ALOHA 在传输帧的时候,不会侦听 信道是否繁忙(区分于 CSMA);当发生碰撞(collision)时,冲突的信号源会选择等待一个随机长的时间再发送。
CSMA 在传输帧的时候,会 侦听信道 是否繁忙,但不同的种类有不同的监听策略。在此协议中,若存在冲突检测(CSMA/CD),则应该将一个站的发送时间间隔至少设置为
问题一:隐藏终端消息 hidden terminal problem
如下图所示,如果 A 和 C 都要给 B 发送消息,在 A 处,可能听不到 C 发送的消息。造成冲突的 忽视。
flowchart LR A((A发送消息))--->B(B接受消息)---C C((C接受消息))--->B---A A-.-|无法发现冲突|C
问题二: 暴露终端消息 exposed terminal problem
如下图所示,当 A 要给 D 发送消息,C 要给 B 发送消息,而 A 的消息无法传送到 B,C 的消息无法传送到 D 时,A 和 C 仍会监测到冲突。造成冲突的 过度处理。
flowchart LR D---A((A发送消息))-.-|发现冲突|C((C发送消息))-->B(B接收消息) A-->D(D接收消息) B---C
解决方案:使用 RTS 和 CTS 帧
严格意义上以太网的标准,与 IEEE 802.3 标准存在细微的差别。
一种以太网标准,是于 1983 年,从先前的 DIX Standard 标准修订而来。它描述物理层和数据链路层的 MAC 子层的实现方法。
WLAN:Wireless LAN,作为无线通信系统,相比有线传输系统有更多需要克服的问题,如传输范围限制、冲突检测等等。
IEEE 802.11 是一个正在使用的无线通讯协议
为支持 VLAN 功能,IEEE 802.1Q 协议设计了一个新的帧结构:
网桥是一种网络设备,负责网络桥接(network bridging)。桥接器将网络的多个网段在数据链路层连接起来(即桥接)。
交换机(switch)是现代网桥的另一个称呼;它是交换式以太网的核心。现在的以太网交换机都是全双工、点对点的,因此冲突不可能发生,也不再需要 CSMA/CD 算法了。